Editor framework