use internal api