Split impl from core.clj