dont you need to return patterns here or does it still automatically assign it back to whats passed in? not sure how the 3rd option of forEach works in this instance