handlers moved to controller