diff --git a/src/tools/BACKEND_DIRS b/src/tools/BACKEND_DIRS
deleted file mode 100644
index 92131e128fcf1ac8e0b83e405f1fbd85aaaf8b6e..0000000000000000000000000000000000000000
--- a/src/tools/BACKEND_DIRS
+++ /dev/null
@@ -1,47 +0,0 @@
-access          various index access methods
-access/common           common access routines
-access/gist             easy-to-define access method system
-access/hash             hash
-access/heap             heap
-access/index            index handling
-access/nbtree           btree
-access/rtree            rtree
-access/transam          transaction manager (BEGIN/ABORT/COMMIT)
-bootstrap       handles initdb requests to create initial template database
-catalog         system catalog manipulation
-commands        commands that do not require executor
-executor        executes complex node plans from optimizer
-include         include files
-lib             support library
-libpq           communication to client libpq library routines
-main            passes control to postmaster or postgres
-nodes           creation/manipulation of nodes
-optimizer       creates path and plan
-optimizer/path          creates path from parser output
-optimizer/plan          optmizes path output
-optimizer/prep          handle special plan cases
-optimizer/util          optimizer support routines
-parser          converts SQL query to query tree
-postmaster      controls postgres server startup/termination
-regex           regular expression library
-rewrite         rules system
-storage         manages various storage systems
-storage/buffer          shared buffer pool manager
-storage/file            file manager
-storage/ipc             semaphores and shared memory
-storage/large_object    large objects
-storage/lmgr            lock manager
-storage/page            page manager
-storage/smgr            storage(disk) manager
-tcop            traffic cop, dispatches request to proper module
-tioga           array handling?
-utils           support routines
-utils/adt               built-in data type routines
-utils/cache             system/relation/function cache routines
-utils/error             error reporting routines
-utils/fmgr              function manager
-utils/hash              hash routines for internal algorithms
-utils/init              initialization stuff
-utils/mmgr              memory manager(process-local memory)
-utils/sort              sort routines for internal algorithms
-utils/time              transaction time qualification routines
diff --git a/src/tools/flow.fig b/src/tools/flow.fig
new file mode 100644
index 0000000000000000000000000000000000000000..f609590fe740269ea40791171cabd17061c4f751
--- /dev/null
+++ b/src/tools/flow.fig
@@ -0,0 +1,112 @@
+#FIG 3.1
+Landscape
+Center
+Inches
+1200 2
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 1200 6900 600 4500 600 4500 1200 6900 1200
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 1200 5700 1800
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 2400 6900 1800 4500 1800 4500 2400 6900 2400
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 3600 6900 3000 4500 3000 4500 3600 6900 3600
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 2400 5700 3000
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 10800 3600 10800 3000 8400 3000 8400 3600 10800 3600
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 2400 9600 3000
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 5100 2700 4500 300 4500 300 5100 2700 5100
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 3600 1500 4500
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 6300 2700 5700 300 5700 300 6300 2700 6300
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 1500 5100 1500 5700
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 5100 6900 4500 4500 4500 4500 5100 6900 5100
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 6
+	0 0 1.00 60.00 120.00
+	 1500 6300 1500 6600 3900 6600 3900 4200 5700 4200 5700 4500
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 6300 6900 5700 4500 5700 4500 6300 6900 6300
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 5100 5700 5700
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 7500 6900 6900 4500 6900 4500 7500 6900 7500
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 6300 5700 6900
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 8700 6900 8100 4500 8100 4500 8700 6900 8700
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 7500 5700 8100
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 9600 6900 9000 4500 9000 4500 9600 6900 9600
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 8700 5700 9000
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 10800 6300 10800 5700 8400 5700 8400 6300 10800 6300
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 6900 6000 8400 6000
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 7500 2700 6900 300 6900 300 7500 2700 7500
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 8400 2700 7800 300 7800 300 8400 2700 8400
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 3
+	0 0 1.00 60.00 120.00
+	 4500 9300 3900 9300 3900 6600
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 4
+	0 0 1.00 60.00 120.00
+	 10800 6000 11400 6000 11400 4200 5700 4200
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 9300 2700 8700 300 8700 300 9300 2700 9300
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1
+	 2700 8100
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
+	0 0 1.00 60.00 120.00
+	0 0 1.00 60.00 120.00
+	 2700 7200 3300 7200
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
+	0 0 1.00 60.00 120.00
+	0 0 1.00 60.00 120.00
+	 2700 8100 3300 8100
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
+	0 0 1.00 60.00 120.00
+	0 0 1.00 60.00 120.00
+	 2700 9000 3300 9000
+4 1 -1 0 0 28 18 0.0000 4 195 630 5670 990 Main\001
+4 1 -1 0 0 28 18 0.0000 4 195 1470 5685 2190 Postmaster\001
+4 1 -1 0 0 28 18 0.0000 4 240 1110 9585 3375 Postgres\001
+4 1 -1 0 0 28 18 0.0000 4 240 1110 5700 3390 Postgres\001
+4 1 -1 0 0 28 18 0.0000 4 195 1710 1500 4905 Initialization\001
+4 1 -1 0 0 28 18 0.0000 4 195 1215 1470 5940 Attach to\001
+4 1 -1 0 0 28 18 0.0000 4 195 2340 1485 6270 Shared Resources\001
+4 1 -1 0 0 28 18 0.0000 4 240 915 9600 5970 Simple\001
+4 1 -1 0 0 28 18 0.0000 4 195 1980 5685 7455 Generate Paths\001
+4 1 -1 0 0 28 18 0.0000 4 195 1275 5715 7170 Rewrite &\001
+4 1 -1 0 0 28 18 0.0000 4 255 1500 5715 6090 Traffic Cop\001
+4 1 -1 0 0 28 18 0.0000 4 195 825 5685 4875 Parser\001
+4 1 -1 0 0 28 18 0.0000 4 195 1140 5685 9420 Executor\001
+4 1 -1 0 0 28 18 0.0000 4 195 2100 1485 7305 Access Methods\001
+4 1 -1 0 0 28 18 0.0000 4 195 1050 1485 9090 Utilities\001
+4 1 -1 0 0 28 18 0.0000 4 240 2325 1515 8190 Storage Managers\001
+4 1 -1 0 0 28 18 0.0000 4 195 1485 9600 6255 Commands\001
+4 1 -1 0 0 28 18 0.0000 4 195 1830 5715 8670 Generate Plan\001
+4 1 -1 0 0 28 18 0.0000 4 195 1890 5700 8400 Choose Path &\001
+4 1 -1 0 0 28 18 0.0000 4 240 900 7605 5925 simple\001
+4 1 -1 0 0 28 18 0.0000 4 240 1125 5715 6660 complex\001
+4 0 -1 0 0 0 24 0.0000 4 330 1290 600 1470 Program\001
+4 0 -1 0 0 0 24 0.0000 4 255 735 600 1890 Flow\001
+4 0 -1 0 0 0 24 0.0000 4 330 1800 600 1050 PostgreSQL\001
diff --git a/src/tools/flow.gif b/src/tools/flow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d697a39f069ce69ba72e8913949e553a4549c7e
Binary files /dev/null and b/src/tools/flow.gif differ