refractored from ncmvc to deep