new property on demand for each object
refactor object method definition