[ ] write a monolithic header file
[x] refactor example code using composition
[x] remove draw class entirely
[x] create shader classes with polymorphism
[x] optimize shader/primative performance (repeat myself!)
[ ] finish implementing gradient shaders to primatives
[ ] implement buffer shader
[ ] implement more primatives