Semi-final version for MSCS
Minor additions
merging with latest changes from Vladimir
merge with latest changes from Vladimir