Committing some of Ruzin's changes into the repo

Committing some of Ruzin's changes into the repo, some unresolved
portions will be added in the next commit