Source: 1, 2
Part 1 & 2: http://old.reactor.cc/post/4456236Part 3: http://old.reactor.cc/post/4455978