This commit applies hexagonal architecture to our app. We have two adapters that can we can share between multiple functions and the main business logic that is easier to test.
There are comments in the code. Please take a look at them for more details about the implementation. There are no tests in this version. We'll add unit tests in the next commit.