create tick() function and move logic stuff out of draw calls.  consistent, device-independent frame rate
use SparseArray for pointer ids instead of HashMap