Lots of update according to the feedback