The presentation logic and state are now encapsulated in their own class: TimerPresentationModel.
Creating and updating the view is now encapsulated in a separate class: TimerView.
Timer logic + thread are now encapsulated in a separate class: Timer
Playing sounds is now encapsulated in a separate class: TimerSoundsPlayer