1. A packet switching controller comprising: a first engine; and a second engine comprising one or more programmable elements, at least one programmable element containing one or more instruction sets, wherein the first engine identifies an instruction set to be executed in the programmable element for a packet, and the programmable element executes the identified instruction set to process the packet.