Robot name - Revision 4

Refactored the code again. 
Not sure if `reset_name` is an accurate name for this method. It doesn't seem to be resetting a name, but rather generating a new one