Without digging more - is there a reason why AABox uses a float for x,y,z and not a glm::vec3 pos or something?