Refactor missed classes
Add unit tests for Transaction