Added generic type for return value for absract class. Now instance of any class in hierarchy has access to parent methods. Fixed generics.