move presentation logic to concerns