Make it the responsibility of the reader implementation to interpret the data

Signed-off-by: John Else <john.else@citrix.com>
Split the shared data into its component parts

Signed-off-by: John Else <john.else@citrix.com>