and is there a better way to do this
function Octree:SubDivide()
local HalfSize = self.Size / 2
local RootPosition = self.Center + Vector3.new(HalfSize / 2, HalfSize / 2, HalfSize / 2)
self.Nodes[1] = self.New(RootPosition - Vector3.new(0, 0, 0), HalfSize)
self.Nodes[2] = self.New(RootPosition - Vector3.new(HalfSize, 0, 0), HalfSize)
self.Nodes[3] = self.New(RootPosition - Vector3.new(0, HalfSize, 0), HalfSize)
self.Nodes[4] = self.New(RootPosition - Vector3.new(0, 0, HalfSize), HalfSize)
self.Nodes[5] = self.New(RootPosition - Vector3.new(HalfSize, HalfSize, 0), HalfSize)
self.Nodes[6] = self.New(RootPosition - Vector3.new(0, HalfSize, HalfSize), HalfSize)
self.Nodes[7] = self.New(RootPosition - Vector3.new(HalfSize, 0, HalfSize), HalfSize)
self.Nodes[8] = self.New(RootPosition - Vector3.new(HalfSize, HalfSize, HalfSize), HalfSize)
self.Divided = true
end