add comments and move stuff around