Implement the static version first, then add the update methods.