Including the part where users are expected to call `update` after `register` (the TODO below)