abstract entity customize