Optimized factorial, added b, oh yea abs