All code has been changed use IoC and MVP.