add property tool
implement sub components