casperjs explanation