refactor varint, it won't automatically normalize everything now, and it has a better api