Use generics when executing a Task on a client, involved refactorings
/ generics on TaskObservers as well.
Add unit test
Enhance test
Merge branch 'separating-layers' into dev
Change class name