add some comment, cannot use ctci solution, instruction order is important