Suppose I have 2 general type of Module Earth/Mars. So there will be EarthPerson,EarthDog and MarsPerson, MarsDog etc. They can convert to each other by implements an interface to make sure they can convert to each other but still remain the same type.Ex: person can only be person not dog.Suppose I have 2 general type of Module Earth/M