check accounts balance before and after transfer

add account balance checks
Not really involved with testing anymore, but I want to point out that I wrote the `ReturnValueError` class to signal these kinds of errors.