finished split functions for each node type