BVH implementation - still seems a bit bugged