add freeze and  @ but some bugs