For this new application, we'll keep the high-level design simple:
As we can see in the diagram, our domain model will be composed of a few concepts: Artist, Song, and SongLyrics. To get access to instances of those objects, our application will use MusicService, which will take care of interacting with the MusixMatch API. The service will also handle the deserialization of the MusixMatch responses into our domain model concepts.