move geometry to core