update and tests