use request animation, append monitor, controller