builds upon #3 to complete the implementation - [x] #53 - [x] #48 - [x] #49 - [x] #50 - [x] #51 - [x] #52 - [x] #107 - [x] #110 - [x] #112 - [x] #114 - [x] implement dry run - [ ] implement timeout - [ ] make magick real (to be implemented under this issue; remove the dummy and make effective)
builds upon #3 to complete the implementation