Even though it technically doesn't need to set the removed flag, it seems cleaner to use the same abstraction.