Module architecture is split into three separate entities:
Module factory represents "type of module" or "module extension", because it allows extensions to register new module types that can be created by users. (In application GUI, factory is selected from ComboBox in Interceptor/Proxy configuration.)
Module represents configured module inside the PETEP application. It stores configuration and creates worker when PETEP core starts. (Module is created by user in Proxy/Interceptor configuration.)
Module worker represents "running instance" of the configured module. It is created when PETEP core starts and destroyed when PETEP core stops. (Worker contains the main logic like modification of data etc.)
PETEP core is the runnable part of PETEP that gets the things done. (It is started by pressing START in Settings GUI.)