rename to js-delegate to avoid conflicts