redefined AODef to include metadata