Extendend usage by class type annotation, added few tests
Merge origin/master