source + diagram