use a single array of fields instead of separate key/type arrays internally
ditch initial / aliasing root in values (composability, use ../../ instead), some cleanup