bstring now uses BitArray to support arbitrary size