Yep, correct. With the exception that if all you need to do is access member variables, call inline methods that only access member variables, or make virtual method calls, then (2) is not required and (1) can be replaced with a dynamic module dependency. Reason being that the above cases don’t require to know specific addresses of code/data inside the module.