write a monolithic header file refactor example code using composition remove draw class entirely create shader classes with polymorphism