Adds services and immutable value objects

* Services communicate with the outer layers through JSON