refactor module to use only one ScriptContext
require.impl() works for real