prevent function redefined