first pass at index ops