How can I improve the topology of this model? I'm trying to learn topology by modeling the Logitech G600. I started with the top cover, but even at the 2nd try, I still find my topology a little bit messy. I feel the most difficult aspect lies in the two big holes (covered by red lines) representing the mouse wheel and the two extra buttons. It requires more vertices at the edges to smooth it out, thereby rendering the topology messy. How can I improve the topology of this model? 

Thank you.

Blender file: Logitech G600 Model
Adding new verticies correctly with the knife tool will sharpen the edges where required. 

Convex corners

See attached (white): X and dissolve the edge but not the vertex (uncheck this option in dissolve edges property box when it appears). 

Concave corners

See attached (red): Cut in the yellow and remove the blue to provide supporting eges.

Knife cut the new verts/edge which will remain as quads not ngons

You will see that the corner is sharp and the sub-d has smoothed the object. 



For the central hole I would set it up as;



For the part you have circled I would work like this:



Everyone does stuff differently this is just my solution

Here it is under 2 subdivisions