For best performance and reuse, define Repository classes in an ActiveX DLL. The underlying data store might be remote, so performance issues might already exist; there's no need to compound the problem by adding remote repository objects. Also remain cognizant of where the persistable objects reside. Ideally, persistence should be accomplished within the same COM apartment.