GUI working 99%, probably should add error handling