Initial submission of enhancement #53. (some features still missing)
Merge origin/master