initial regression test and refactored the topology interface

defer, not go.