merge the changes from sijchen/master