fix minor bug
add FileModule & Noncopyable
add comment
unit test for all files in `utils`