finished gen_identity class