Added more comments. Moved ViewCOntroller interface to own package