slightly modified abstractMasterController