Move logic into single controller (gah)