#4 move error message generation to InvalidCurrency class; extract currency code presence check to separate method