Add specs for ledger
Refactor specs for readability
Add debit/credit concept to Transaction