simplify by using declarationForProperty