added logic to controller for all shift types