merged preremove_special and postremove_special since they didn't need to be separate