refactor circular dependency between packages gcviewer.ctrl + gcviewer.ctrl.action