Make generateId take a length parameter