Use generics to refactor org.modeldriven.fuml.repository.model package hierarchy. E.g. public class Element<E extends fUML.Syntax.Classes.Kernel.Element> { //blah }