new version according to the change of demand