first stab at the id generator