redefined extend