You must have put a lot of thought in this.  P