Because add immediately asserts on the added data point being the same size as the instance's (0) dimensionality, without checkig for initialized(), nothing good happens.
add should check for initialized and if not, initFromData() after remaking the containers with the new label and point