Use kwargs for to set default parameters.
Initial implementation of begin and end transaction.
Add push/pull functionality.