Initial architecture

I only have added the first entities (maybe the only) and some tests.

Not sure if I am doing in the correct way, it's still a bit confusing for me.

ping @ocramius