controller with reflection