Rectangular shapes in cylinders with subdivision surface What can you do to get clean rectangular shapes in a cylinder while using the subdivision surface modifier? 

For the time being I've been trying to extrude them in the model and adding creases or support edge loops, but the end result looks weird even with an edge split modifier. The problem with support edge loops is that they affect other parts of the model that don't really need them and if I add some triangles to stop the flow things start to look bad. 

After those problems, I added the rectangles separately by duplicating parts of the edge loop and adjusting them to the smooth form of the cylinder, but I was wondering how someone with more experience would tackle this.
Adding the rectangles separately is probably easiest. If you are stuck on adding it into the topology, here is what I got by using mark sharp, edge creases, and the cast modifier with a vertex group. (the base topology is simple enough to be self-explanatory)





If you want to remove all n-gons, you can add two loops and line them up with the top and bottom of the box. Then knife cut between them to get this:





One more trick...use the data transfer modifier to fix normals: