public object Retrieve(string messagename, params object[] p)
{
if (p.Length == 0) throw new FileNotFoundException("File to read was not specified");
var stream = (Stream)p[0];
MessageDefinition definition = MessagingManager.Read(MessageDefinitionType.Xml, messagename);
var reader = new StreamReader(stream, definition.Encoding);
return BreakIntoRecords(definition, reader).Select(record => record.State);
}