Added transaction feature
Tested with some simple use case
Added plan