seperated controller