add templateing for never_direct, prefer_direct, nonhierarchical_direct