improve for different machines
improve for different machines
fix bugs