Ok, lets look at your discount function:

```
def rental_car_cost(days):
rental_car_cost(1) = 40
if days >= 7:
rental_car_cost - 50
elif days >= 3:
rental_car_cost - 20
return rental_car__cost()
```

A number of this going wrong here:

1) What @intermediategamer said above. Also, when you do rental_car_cost - x, you are trying to take x away from a function object, not it's eturned value. And you return rental_car_cost(), but cost should take one argument so you will get an error there.

2) Lets look at what is happening with you if statements. First you are saying if it is over or equal 7 days make this discount x. However, if that if statement is True then elif days >=3 will be True too and so you will get the discount for 3 or more days but less than 7 applied.

When doing if statements you can chain the logic, i.e.:

`if a <= b < c:`

Next you want your function to end and return the discount when one of your if statements are True. So you use return under the if statement to send back the desired discount.

So your logic is going to look something like this:

```
def rental_car_cost(days):
baseCost = #work out cost before discount
if days >= 7:
# Minus discount from baseCost and return it
elif days # 3 or more and less than 7:
# Minus discount from baseCost and return it
return # No discounts apply so just return the cost
```