dont forget that factorial 0 is 1