Long, but a must-read nevertheless.