How many terminals do BJTs have?