back to original
compute factorial