1. Adding driver file to drive the topology evolution, reduce the code in the main.cpp
2. Adding default value to some of the functions, eliminates some duplications
3. Fix bugs in the Node::update_prespective(), adding condition check in line 116 to avoid infinite loop
4. Add an abstraction function get_topo_name ()

TODO:
log need to be written, evolution function needs modification