merged with master and pulled in upstream changes