standardised operators -- '^' is indicies and '#' is xor