major overhaul, shifted to a MVC design