switched to contenteditable for better styling and performance