In this paper we propose a methodology to design decentralized controllers applied to large-scale systems. The key idea is to split the design into two control layers. The first layer, consists mainly in a pre-processing step, where an optimal subset of inputs and outputs are used for feedback to close the loop, such that the resulting associated state matrix of the closed-loop system has two desirable structural properties: it has no structural fixed modes and it is structurally controllable and observable thru any single state variable. After this first layer, we can select an arbitrary decentralization control scheme to achieve some specified performance, which is the second layer of the proposed approach. We illustrate this methodology for the following applications: a two zones temperature regulation and a frequency regulation of a 3-bus system.