merge Linux and Mac branchs into master.