merge master to john

merge master to john