First step towards lazily loading catalog

We still load all the packages at the beginning, but at least we do it
by calling a function that you could imagine could be called later.