1. A computer implemented method for generating customized program logic being operable to control hardware devices of at least one target system, the method comprising: determining, by a reporting unit of the at least one target system, the one or more hardware devices operatively connected with the at least one target system; sending, by the reporting unit, a first list of identifiers of the determined hardware devices to a server system; receiving, by the server system, the first list of device identifiers; automatically selecting from a set of drivers, by the server system, for each of the device identifiers in the received first list, at least one driver operable to control the identified device, thereby generating a sub-set of said set of drivers; and automatically complementing a core program logic with said driver sub-set to generate the customized program logic.