refactored to use dictionaries for listings