I've gone through the docs and it says/recommends to put the services under the CoreModule if they are going to be used throughout the app and not to include services under the SharedModule because some unexpected results could occur in case it's imported in the lazy-loaded modules. So I was going to follow the guide but I encountered some articles which say it is okay to keep services under the SharedModule and just import it in the AppModule with the static forRoot method. I get what the approach tries to say but I don't understand what is better in this approach. Are there any pros and cons in both approaches? Or can I just go for the CoreModule approach as guided in the docs?