migrated to JUnit4
added support for wildcards in type arguments for generic types
added test case