Refactored to utilise a list of tuples