change lots of code  for message interface