Refactored 58 to be simpler.