Taken changes from master branch