automatically create accounts for users and challenges when they are created.  add double transactions (one for each account) when money moves.  And, finally some test cases!