Worked on generateID