Switched to use std::bitset, wrote more tests