Refactored out the fancy stuff, resulting in switches and tramp data. Sigh.