Do we really need this default prototype? Couldn't that be handled by javascript and just select the prototype from the current value? Would allow us to remove this code.