Finished GUI essentials. Need to sort out some bugs and write unit tests.