prefer 'zip', 'map' to customising Array class with 'one_of_each' method