Refactored to architecture & to prepare for :only

Refactored further after another comment from Jared and our conversation
about how to implement :tabonly versus :only.