2. For a small app like this one, I have one aggregate model but for larger apps apps I may have more depending on the bounded context of the application. This means if I am building an e-commerce app I may have Catalog aggregate model, Fullfilment aggregate model etc.
3. My main reason for passing NetworkService as a dependency is that I can easily switch environments between the TEST or the DEV service. This can also be done inside the Model as you have shown but in that case I will need to use a NetworkServiceFactory.create() to create a designated NetworkService either DEV, TEST or PROD.