Moved public behaviour into Interfaces