Moved the work to instance methods; made mutation? take 2 params