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