new Comm init, supports both in and out buffer