recursive kw