compartementalized everything out into components, added canvas ops and graphics builtins