restructure and split