first cut at recurse