move logic into presenter