ongoing gui-controller separation work