added the factorial class