Interfaces refactored to Classes