switch to using controllers