More properly follows the MVVM pattern.