separated controllers, improved logic