ran into a case where a decay was needed

this probably needs to be applied in more places
add defer_operation
use defer_operation for suspending event