request animation frame added