refinement and optimizations

- optimized tween routine
- change tween rendering to use requestAnimationFrame