Refactoring Interfaces and enums +  adding new interface