abstract to index.js again