split to view and presenter with unit tests