Use generics when executing a Task on a client, involved refactorings
/ generics on TaskObservers as well.
Use generic application interface
Rename generic
Rename generic
Merge branch 'generics' into 'dev'