dual-controller function