- Specify source files in variables instead of manually writing the make file rules, this removes a lot of duplication - Use separate folders for all tests allowing for tests and common source files to be built with different settings (defines)