Refactored trap.js