cleaned up a lot of the interface