could be converted to a range and an inject - but it's fine :)