update data structrue