mark RemoteElem constructor as private to force the create() usage