Retopologizing Circular Window I made a circular window along a curved surface with Subdivision Surface modifier applied.[![enter image description here][1]][1]

The bottom edge seems fine, however the top edge is crimped and somewhat distorted, the top edge also forms a lip which projects away from the mesh and is visible when in front view;

and here is the underlying geometry, which as far as I can tell is all quads

How do I retopologise to fix this, if that is at all possible? How do I avoid this problem in the future?

Update: The topology shown here has been modified  in that I deleted the quad faces around the circle. However I still don't know how to connect the circle to the outer edge loop smoothly. 
.blend:
I believe it's an issue with the density.



What you might want to do is start over and equal out the densities of Yellow and Red (several ways to approach this) before punching the holes to get an easier and cleaner result.

Alternatively you could add another ring and then retopo accordingly to get a cleaner hole. 

Here's a quick example (sorry for the messy image).



I used bevel on the outer ring to add another ring.

Next time, please link the mesh so it's easier for us to help you :D