use types and name strings to prep for recursive value handling