Using the static method in PimpManager to create an instance of a PimpObject in another peer will result in that the new project does not have a name, but rather the given name in the method call is set as description.
This is caused by that the sender only sends the objectname but the receiver both reads a description and a objectname!
It is easy to fix but raises another issue:
The purpose of the description of a PimpObject is to be able to present towards the user a piece of text that explains the object and therefore does not really make sense once you create instances of specific kinds of PimpObjects like a GPS object. Though if you make an instance of a PimpObject and add properties and use it for something specific without subclassing the PimpObject class it makes sense to set the description.
1. Do not allow to make instances of PimpObject, change it to become a abstract class. And remove the description from the creation of pimp objects.
2. Keep the current model, but remove the possibility to provide description at creation, has to be added later once the object is created if one creates a PimpObject instance. Drawback that someone can forget or ignore this, though they can do that also when subclassing.
3. Add a description to the static method, but if null or empty, "", do not set the description. Alternatively provide two static methods on with and one without. Then it is up to the developer to know what he or she does.