working version with normalized size_t id, id are still ugly (no total insurance of uniqueness)