Make ready for 0.4.0
diff --git a/README.md b/README.md
index fc5e9c2..cdc8074 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # DotPulsar
 
-Native .NET/C# client library for [Apache Pulsar](https://pulsar.apache.org/).
+.NET/C# client library for [Apache Pulsar](https://pulsar.apache.org/).
 
 DotPulsar is written entirely in C# and implements Apache Pulsar's [binary protocol](https://pulsar.apache.org/docs/en/develop-binary-protocol/). Other options was using the [C++ client library](https://pulsar.apache.org/docs/en/client-libraries-cpp/) (which is what the [Python client](https://pulsar.apache.org/docs/en/client-libraries-python/) and [Go client](https://pulsar.apache.org/docs/en/client-libraries-go/) do) or build on top of the [WebSocket API](https://pulsar.apache.org/docs/en/client-libraries-websocket/). We decided to implement the binary protocol to gain full control and maximize portability and performance.
 
@@ -15,20 +15,25 @@
 ```csharp
 const string myTopic = "persistent://public/default/mytopic";
 
-using var client = PulsarClient.Builder().Build(); //Connecting to localhost:6650
+await using var client = PulsarClient.Builder()
+                                     .Build(); //Connecting to pulsar://localhost:6650
 
 var producer = client.NewProducer()
                      .Topic(myTopic)
                      .Create();
-await producer.Send(Encoding.UTF8.GetBytes("Hello World"));
+
+_ = await producer.Send(Encoding.UTF8.GetBytes("Hello World"));
 
 var consumer = client.NewConsumer()
                      .SubscriptionName("MySubscription")
                      .Topic(myTopic)
                      .Create();
-var message = await consumer.Receive();
-Console.WriteLine("Received: " + Encoding.UTF8.GetString(message.Data.ToArray()));
-await consumer.Acknowledge(message);
+
+await foreach (var message in consumer.Messages())
+{
+    Console.WriteLine("Received: " + Encoding.UTF8.GetString(message.Data.ToArray()));
+    await consumer.Acknowledge(message);
+}
 ```
 
 For a more in-depth tour of the API, please visit the [Wiki](https://github.com/danske-commodities/dotpulsar/wiki).
@@ -56,13 +61,13 @@
 
 ### 1.0.0
 
-Before the first stable release, we should have a look at:
+We are feature complete for this release. We just need testing.
 
-* Use IAsyncDisposable
-* Use IAsyncEnumerable
-* Consider using ValueTask instead of Task
-* Consider using nullable reference types
-* Look into the possibility of supporting .NET Standard 2.0
+- [X] Use IAsyncDisposable
+- [X] Use IAsyncEnumerable
+- [X] Use ValueTask instead of Task
+- [X] Make solution nullable
+- [X] Support .NET Standard 2.0 and 2.1
 
 ### Future
 
diff --git a/src/DotPulsar/DotPulsar.csproj b/src/DotPulsar/DotPulsar.csproj
index 2930e18..de2aa9f 100644
--- a/src/DotPulsar/DotPulsar.csproj
+++ b/src/DotPulsar/DotPulsar.csproj
@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
-    <Version>0.3.0</Version>
+    <Version>0.4.0</Version>
     <AssemblyVersion>$(Version)</AssemblyVersion>
     <FileVersion>$(Version)</FileVersion>
     <Authors>DanskeCommodities;dblank</Authors>
@@ -11,8 +11,8 @@
     <Title>DotPulsar</Title>
     <PackageTags>Apache;Pulsar</PackageTags>
     <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
-    <PackageReleaseNotes>Beta release - TLS connections and JSON Web Token authentication</PackageReleaseNotes>
-    <Description>Native .NET/C# client library for Apache Pulsar</Description>
+    <PackageReleaseNotes>Beta release - Moved to ValueTask, IAsyncDisposable and IAsyncEnumerable</PackageReleaseNotes>
+    <Description>.NET/C# client library for Apache Pulsar</Description>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PublishRepositoryUrl>true</PublishRepositoryUrl>
     <IncludeSymbols>true</IncludeSymbols>
diff --git a/src/DotPulsar/Internal/ConsumerStream.cs b/src/DotPulsar/Internal/ConsumerStream.cs
index 4c00971..776c3df 100644
--- a/src/DotPulsar/Internal/ConsumerStream.cs
+++ b/src/DotPulsar/Internal/ConsumerStream.cs
@@ -41,7 +41,7 @@
 
                     if (_firstBatch)
                     {
-                        _commandFlow.MessagePermits = (uint) Math.Ceiling(_commandFlow.MessagePermits * 0.5);
+                        _commandFlow.MessagePermits = (uint)Math.Ceiling(_commandFlow.MessagePermits * 0.5);
                         _firstBatch = false;
                     }