Note the existance of `onreplaced`. Still lots to do.