Renamed/Relocated first generation implementation
Added second iteration implemenation with support for transactions