public Screensaver(Counter counter, ILanguage language) { if (counter == null) throw new ArgumentNullException("counter"); if (language == null) throw new ArgumentNullException("language"); _counter = counter; _language = language; //set the message on start Message = _language.GetMessage(_counter.RemainingTime); _counter.Tick += (sender, args) => { if (_counter.RemainingTime == 0) { Expired = true; } Message = _language.GetMessage(_counter.RemainingTime); }; _counter.Start(); }