Hello, @atlantaspp!

The thing with factorial is that you're not adding numbers but multiplying them so even appending each of them into a list and get the sum if isn't right but seriously, you were really close!

Using the number three, as an example, you'll append the values **6** and **3** because you'll calculate:

```
#First execution:
#x = 3
#count = 2 (because x - 1 is 3 -1 which is 2)
#current = None (has no initial value)
sets = [] #Empty
while 2 < 3 and 2 != 0:
current = 3 * 2 #Which is 6
sets.append(int(current))
count -= 1
#Second execution
#x = 3
#count = 1 (because you decreased it's value by one)
#current = 6 (has no initial value)
#sets = [6]
while 1< 3 and 1 != 0:
current = 3 * 1 #Which is 3
sets.append(int(current))
count -= 1
#Third execution
#x = 3
#count = 0 (because you decreased it's value by one)
#current = 6 (has no initial value)
#sets = [6]
while 0 < 3 and 0 != 0:
current = 3 * 1 #Which is 3
sets.append(int(current))
count -= 1
#After all of that, since the program evalueted the condition and it's
#False, the execution will leave the for loop and go to the next
#instruction right after it which is the sum()
#It will add the values in your list sets which are 6 and 3, returnig 9
```

Try to check your code and see where you could actually alter to change it up.

Remeber: if I tell you to calculate me the factorial of 4, you're supposed to do 4*3*2*1 or 1*2*3*4 and bring back the result which is 12.

Hope I was clear, otherwise I'll find another way to explain it!