comment and optimization part 2