improve build system