use some features of c++11
remove unused Edge member next_edge_
use a few more c++11 features