Tonight has been mostly work on special functions. It is still too ugly,
I'm sure there must be ways to remove some of this but right now I think
it is better that I strive for completeness and then come back for the
stragglers.