factorial -- passed 1 and 2