markup driven build process