Added a surface glm implementation