cleanup
fixed modes
added drawfunc caching, matrix op cleanup