Updated stuff so that most everything now uses interfaces.