private object deserializeToObject(byte[] bytes, int offset)
{
BinaryFormatter formatter = new BinaryFormatter();
int size = bytes.Length;
Stream stm = new MemoryStream(size);
stm.Seek(0, SeekOrigin.Begin);
stm.Write(bytes, offset, size-offset);
stm.Seek(0, SeekOrigin.Begin);
return formatter.Deserialize(stm);
}