Excellent article! Long, but worth a read.