Refactored to use more descriptive item class (instead of generic pair)