Modified to model to better support future IoC (cont.)