use variadic template attach for attaching shaders to a program
use constructor delegate for screen aligned quad