Refactored to use a Model instead of a Tuple