revert by reference implementations