Refactored for 80char line limit