Adding support fr interfaces and abstract classes
Cleaned up tests