re-developed the data.js module