using a bank of range gates or a memory matrix