Design of base components + Clock

* Code improvement
* Clock implementation
* Tests
* License headers
Shouldn't we use the context.unbecome(...) in that case?