add first pass at bare bones recursive directive