add some comments
improve the order of transforms