Major update - switch from general MVC to custom type