added projection matrix