start of interface refactoring for PLYObject, PLYElement, PLYProperty