Adapted controller. Untested.