Add core functionality