added loads of gui and stuff