Move AbstractEditor to separate file.