adding get, reset, and paint methods, started restructuring to add requestAnimationFrame