Add core level implemention