better normalize function & doc