Now with threading, not that it helps Java overhead too much!