add controllers, some minor fixes and improvements