upgraded diagram