new version 1.2, with better performance.