Use factory class to build BuildSystem variants, add dot graph
for class layout