refactored and ready to roll