gns

1, complete the protocol code (almost done)
  1 refactor code, make it clean
2, design the run step
