How to add new host attributes and vm requirements?

We’re developing a new scheduler to add on opennebula, that needs defining new policies, new host attributes and new vm requirements, such that the vm placement decision is made based on this new vm requirements. We defined the host attributes in the VirtualMachineXML.h, HostXML.h and HostShare.h, however we think that this isn’t the right way to do so, as it is extremely difficult to understand the whole system to be able to implement the new scheduler.
We’re sure that there is a much simpler way.