Nice write up, one day I will try and tackle this.