add InaccessiblePropertiesProtectorTrait
add InnerClassCacheTrait
add InstanceCreationDisallowerTrait
add SingletonTrait
add PropertyTrait and StaticPropertyTrait