implemented add and modify