remove unused header and declaration
cleaning comments
uses std::swap instea of manually doing it