Simplified the interfaces and cleaned everything up