redesigned: controller