Refactored ModelEditor