fix bugs, add comment