Thanks. That's actually very similar to the original solution, but with in-lining the object method calls. Adopting this approach actually decreases running time by half. I'm always amazed how large it the overhead for calling functions, and it saddens me since it makes the code less maintainable and understandable. I guess you can't have it all...