Made a lot of update and reorganization