http://nerget.com/rayjs/rayjs.html