Update: ModuleProtocol refactor