That was part of my dilemma, while it keeps things closer to the way things are done natively I wasn’t sure if they’d ever be needed once the initial implementation was done. Perhaps said more succinctly, is it necessary for an end user to know what object performs what role? IMHO, someone is going to want to get a list of servers and get the associated asset.
In any event, we should probably at least start as straightforward as possible, the Hook object can always be revisited later. So only those three classes? I’ll push the headers and what I can of the implementation tonight or in the morning.