first pass at the interface and all the code for it. Still working on some of the functionality and figuring out parts of the layout.