add some comment, add normalize