Subdivs are polygons, kindoff from modelling point of view, only the interpolating nature is different.
Your kindof doing thsi the wrong way around. you should first form the holes and build the shape around theese features. Bacuse adding detaiul causes the interpolation to change in nature.
You should realy search for tyhe keyword edge loop and understand that.
OR then you should have modelled with nurbs, Since hard objects like this actualy are easir to do with nurbs tools.