refactor TraceManagerBase into an interface