Author: Craig B. Fryhle T.W. Graham Solomons