require bit ops