should this assert that `size & (size - 1) == 0`?