factorial now uses gamma