fix bug of has redefined