Rename scope to ctx, use childContext throughout