Improvements branch

PR to merge all the changes in improvementsBranch with all its changes and adds to the master branch.