added in fst snd and or operations