Add core functions