Refactor text editing view to only take content, not a model