cleaned up working multiple parameter recursion