I surely have to take the copy part out as it is useless, for singleton objects anyway, but I want to accept arguments even though the constructor will just ignore use them if a reference to an old object is returned.
Maybe I should warn the user if he does so.
I am not sure how new and get instance would work together though, which instance would I return if I have two objects. What is the benefit of this?