Add some virtual destructors. Remove default values from PropertyProxy. Use c++ zero initialization feature.