#UPDATE: The 1st time of completing the master branch's codes and unit tests, still lacking the comments.
#UPDATE: Add some comment.