Removed unnecessary classes now that we have use site variance
Remove unnecessary java code with proper usage of generics