Moved some classes around, created interfaces