lots of controller stuff