Added new way of implementing the source view

This new way requires rather lots of code, but it's more
understandeable and more easily managable and extensible than the
previous version.
Deleted

Not needed.