change sw* to but*
combine button and switch operations to two functions for changing their states
remove dummy controller
modify custom exception classes' returns strings