Organized everything into a class