Optimised; now almost as fast as Java