Merged w Bryce's commits.  Things got a bit hairy...