delegate update