insert by path to avoid overwriting