Curved face with square windows problem

I am modeling a simplified version of the Graf Zeppelin, and I’m having trouble with the gondola. I want the windows to basically look like this, with a perfectly smooth front and square windows:

But I am having trouble controlling the subsurf modifier. If I simply leave everything subsurfed and take out square window holes, they come out circular. If I crease the edges, I get weird effects around the window area. This is the best I’ve been able to come up with, but I still don’t like how flat the window frames look and the fact that there are creases around them.

Start off with a cylinder with way, way more sides and cut your windows into that. The more sides you have, the less you’ll have of this problem.

here is a little trick
with subsurf you can add ertex near a corner and bring it close to the corner vertex

that will make it almost square

hope it helps

Thanks for the suggestions! I am currently trying making it with a high detail cylinder, and I’ll try adding more loops to the original, too.