Heavily modified Cat class to make it easier to work with, better organized, and behave more appropriately as an object