This commit was rebased by theoreticalbts and assigned issue #581 Conflict with 146c0c4d8e was resolved, minor improvements.
146c0c4d8e