correct return type for split_free_node()