This seems like a better way to divide things up using classes