only need to define once