working update to factorial recursion