splitting logic done