core interfaces