split logic