add authentication support, and transaction support