strugglifying with basic architecture
mostly fixes #5,

needs more tests but everything is a bit more simple this way.
Merge pull request #6 from ClientState/feature/5-data-model-refactor

Feature/5 data model refactor