companion object doesn't need bittwiddling