Model View Controller with plugins