btw, this could be simplified by normalizing the prototype instead (when it contains a string)