include program in state
set shader program only when drawing
move base OpenGL initialization to its own file
todo spam