"then" modifies by reference now rather than by return value