updated core.js, now handling heavy tasks with preload method