further optimization do overall programa
Merge origin/master