adding a bunch of stubbed tests
adding waiting to prepare, and preventing multiple prepares on the same instance
adding a bunch of logging
fixing a locking bug
fixing a synchronization bug
adding dependency acknowledgement