move logic to presenter