Reduce threading

#743 #677 
Have you tried this before in java?