This provides some basic structure and functionality for Cat, albeit with a messy and somewhat incoherent structure.