Adding immutable merge and split