Delete Move as unnecessary, rename Copy to the more explicit CopyTorrentFiles, CopyTorrentFiles implements Observable, Logger implements Observer
Rename object under test to fixture
Add comment
Remove TH\Observer\ObserverInterface and ObservableInterface, replace with \SplObserver and \SplSubject
Extract common SplSubject code into a trait, write a simple TestCommand to aid mocking Logger, complete LoggerTest
Implement CopyTorrentFiles::execute() and ::undo()
Implement DeleteEmptyDirs::execute() and ::undo(), no tests
Implement DeleteTorrent::execute() and DestroyTorrent::execute(). No tests.
Implement DeleteAllTorrents and DestroyAllTorrents, no tests
Implement StartTorrent and StartAllTorrents. No tests.
Implement StopTorrent and StopAllTorrents. No tests.
Implement QueueTorrent and QueueAllTorrents. No tests.
Swap in vohof's Transmission back-end. Thinner wrapper, more features
Add old lib back in for a while, while I do transition to new lib
Partial rewrite to new transmisison lib
placeholders