implemented name maker makeName and adapted constructors to use it