use internal core