made transaction.py, currently untested