only recall its self if the user is defined