got factorial running through to a halt - not sure if right answer