continue to refactor Trace