SDN as a network architecture emerged on top of existing technologies and knowledge. Through defining the controller as a software program, SDN made a strong connection between networking and software engineering. Traditionally, network programs were vendor specific and embedded in hardware switches and routers. SDN focuses on isolation between control and forwarding or data planes. However, in the complete SDN network, there are many other areas (i.e. CPU, memory, hardware, bandwidth and software). In this paper, we propose extending SDN architecture and propose isolation layers with the goal of improving the overall network design. Such flexible architecture can support future evolution and changes without the need to significantly change original components or modules.