Lesson 5 

Most of your difficulties start here. Start by instantiating rate as `None`. You'll need that in case some set of arguments doesn't match the posted rates. Additionally, it expects a decimal but since None cannot be a decimal, you'll have to check at the end:

    if rate:  # this works because None is false-y and any non-empty string is truth-y
        rate = decimal.Decimal(rate)
    return rate