No need to use void* as the types of the arguments in the monitor functions as the types are known and will always be the same.
Each monitor module now resides in a subdirectory of its own. The name of the subdirectory is the same as the name of the library in the module's CMakeLists.txt file.