ported to xml schema driven programming model