substantial refactoring with plumbing to handle infering different plot types to used based on characteristics of result set