refactor to use easel.js