recursively tracing for reflection