allow :state msg to relay a fn to transform state