refactor includes, build system