add reset(), reconstruct codes, adding comments, and source_files