First version of internal ES create/update functions