add fields and extend properties