move attract update into Attract.js