---Broad outline: Get packets Tally stats Mangle them Tally stats Send 'em out B---road outline, 10x magnification: Get packets from packet engine Run them through the tally object Mangle packets with custom packet mangler (TM) Tally object... Send them out through the packet engine ---Broad outline, 100x mag: foreach $packet_engine ( @all_packet_engines ) { push @incoming_packet_queue, $packet_engine_object->get_packets; } $stats_object->tally(@incoming_packet_queue); @outgoing_packet_queue = $function_object->mangle(@incoming_packet_queue); @incoming_packet_queue = (); $stats_object->tally(@outgoing_packet_queue); foreach $packet ( @outgoing_packet_queue ) { #insert clever routing logic for packets e.g. foreach $engine ( @all_packet_engines ) { if ( $packet->{ATTRIB} == $engine->{ATTRIB} ) {$engine->send($packet)} } }