add getPart and use in getValue and setValue, so we don't need ValueId.table based dispatch
WIP cleanups
Progress