check for shortcode just after posts query
first major refactor to separate out shortcode context
reorder some methods for clarity
some further rejigging and grouping of methods
relocate invoke method