properties should be private/protected