use bit-wise operators instead of logical_and, logical_or