recursive params type fix