Made some fixes to the controllers that were discussed previously, but
for some reason never commited. These are all to help implement the
SwapManager. Changed SwapManager to a Singleton.