merge CoolWorld from upstream/master