removed the vector struct, implemented glm