A computer implemented method for validating a device during installation to a software defined network , SDN, ; the method comprising: receiving data associated with the device during installation; validating the device using the received data; providing a master SDN controller for controlling the SDN network ; generating a co-controller by a master SDN controller containing device validation data; dispatching the co-controller to the device during installation; controlling installation of the device to the software defined network based on the device validation data; generating configuration data based on input received from users via one or more client portals which are configured for facilitating users controlling networked devices ; the master SDN controller being operable to generate routing data for the networked devices ; generating by the master SDN controller a plurality of discrete co-controllers each associated with a particular end user; each co-controller including configuration data and routing data for an associated networked device ; dispatching the co-controllers by the master SDN controller to the networked devices associated with the respective end users for controlling thereof; installing the co-controllers on the networked devices ; and registering the installed SDN co-controllers with the master SDN controller for controlling the routing of data from the networked devices and for controlling the configuration of the networked devices . receiving data associated with the device during installation; validating the device using the received data; providing a master SDN controller for controlling the SDN network ; generating a co-controller by a master SDN controller containing device validation data; dispatching the co-controller to the device during installation; controlling installation of the device to the software defined network based on the device validation data; generating configuration data based on input received from users via one or more client portals which are configured for facilitating users controlling networked devices ; the master SDN controller being operable to generate routing data for the networked devices ; generating by the master SDN controller a plurality of discrete co-controllers each associated with a particular end user; each co-controller including configuration data and routing data for an associated networked device ; dispatching the co-controllers by the master SDN controller to the networked devices associated with the respective end users for controlling thereof; installing the co-controllers on the networked devices ; and registering the installed SDN co-controllers with the master SDN controller for controlling the routing of data from the networked devices and for controlling the configuration of the networked devices . generating configuration data based on input received from users via one or more client portals which are configured for facilitating users controlling networked devices ; the master SDN controller being operable to generate routing data for the networked devices ; generating by the master SDN controller a plurality of discrete co-controllers each associated with a particular end user; each co-controller including configuration data and routing data for an associated networked device ; dispatching the co-controllers by the master SDN controller to the networked devices associated with the respective end users for controlling thereof; installing the co-controllers on the networked devices ; and registering the installed SDN co-controllers with the master SDN controller for controlling the routing of data from the networked devices and for controlling the configuration of the networked devices . <EOS>