Design of base components + Clock

* Code improvement
* Clock implementation
* Tests
* License headers
Actually, it does not work as a stack, it replaces the context by another one.