some improvement including transform-param