Added a failing test for transactionality
Add transactionality

Gosh the code is really beginning to feel dirty
Fix broken test+cleanup
Add nested dependencies