self-implemented MVC pattern