Split up split into child methods - Replace conditional with polymorphism