context.js fully functional