Refactored and implemented new Mvp structure