I flushed out a few of the interfaces a bit more