Lots of rearrangement and updated problem to step2-1