made factorial fail on negative numbers, need to set bounds, overflows on large integers.