Refactor of MVP