updated from master
conflicts fixed