Pulled out mutate_state method to simplify logic in fulfill and reject.