fix the factorial