That's quite a pattern match! Must've taken a lot of time to write. This is something that all of us sometimes have to do - welcome to the club :)