introduced ILogger interface