Fixed transactions.
Made refactoring. Added some tests.
Added some tests.
Added some tests.
Update README.md