changed the return type from Money to Either[String, Money]