factor out basic outcome cache into own struct
double-down multiplier in equation