Commit 19 - After revert

This commit is a reverted copy of commit 17 after losing data.