Moved stuff into different classes and methods. Added some styling