redid most trying to avoid .each and breaking repetition out into methods. complete through to_s