I'd just return this, vs. putting it on `position`.  Same in all cases below.  Functions shouldn't have side effects.