Adding first passing unit test

Continued going deeper and deeper in the architecture. Implemented first unit test and code that makes it pass. Idea is to implement higher level only as far as you need to get to lower level. This way we can defer big design decisions as far as possible.