modified defbuilding macro to allow for arbitrary extra fields.