Extracted common editor functionality into an abstract super class