ability to create property by value or by type