initial version
Transaction handling added