cleaned up docs, added some transaction checking to join_transaction