restructured build process