lots of refactoring

broke circular relationship; now all symbols flow c++ -> py
split interface into multiple files