GUI and Controller interfaces and Pseudo Code