Re-add interfaces and move out of base class