Optimise update_state for fire