redo BitArray using core.bitop and add special case for very small arrays