add missing includes
add shaderprogram object