Split out object system into a separate repo