Use ES5 property definitions
Properly handle multiple messages in one chunk
Allow setting magic bytes on construction