Add core function