modify source structure