add ShaderEffect class which handles shader programs