update core functions