re-factor to use IAMobile.Controller