Use Model with View.
Extract ViewDataProvider from View.
Extract Renderer from View.
Update license.
View should extend Events.