cleaned up procmsg interface