refactoring, next stop offense.js