revisit the build system