changed Homo classes to return a consistent type . this needs
improvement