implemented updateSelfState