refactored for presentation