make all property classes except Property<> abstract and reduce code