add comments and unit test