Made interface into class - probably a bad idea long term. Abstract class should be in a project.