updating core functions