remove useless explicits
make deleted constructors public
don't call default constructos explicitly
don't use names that start with underscore
enable all warnings