completed implementation of NameGenerator