Define the three overarching domains that contain application software, system software and hardware layers long the layers of abstraction in each. Explain in detail how each of these layers, whether software or hardware, interacts with the others. Explain your answer in 3-5 sentences.