Thanks, Kenneth,

I spent hours analyzing snb's code. That's my excuse and I'm sticking to it.