cleaned up include ordering and removed redundancies, removed unused standard library headers, changed using directives to using declarations for std::, cleaned up main a bit