auto splits function