started, gotta debug this to death
factorial working
now reading negatives