Source: http://user.it.uu.se/~yi/courses/rts/dvp-rts-08/notes/RT prog 1.pdf