Added a cache so items won't recalculate if they haven't changed. Mutation and cross will reset and force recalculation.
Added crossing (incomplete).
Added timing, targetColumn, and extracted a loop.