doh. make u32 actually 32 bits wide (instead of 64)
add enumeration and selection support