added GUI, it needs cleaning up