Bump, add, and remove, all seem to be the same code. Could we reuse this code?