Switched back to use vec3