refactor(control): add CalcProperty