update core function