use properties rather than definitions