moving some logic to the presenter