add and modify structure