add controller,viewmodels and data layer