almost done with BitField class