Implement remaining functionality

Feature complete, but ugly both
code and ui wise. oh well