Implemented using navigator.js