feature: use require.js