Refactoring, added default move ctor/assign
Removed useless stuff
Formatting
Adapted to refactoring