parameterizing update and pack