add full externalization support