It currently makes the assumption that :core is the first element in the property list for each package specification. This appears to be the convention and makes the code simpler, but if you think it is not justified, that part can be reworked.