implement splitter