update and reorganized