implemented a name maker, refactored the constructors accordingly