update of implementation