made GUI controller abstract (again)