#4 code review && #6 doc