remote abstract.js