added require.js support