sketching up more abstractions
Splitting contract from implementation
leave a comment
Using CLoseable consistently everywhere
This is how multi-tenancy should be done
Added JenkinsResolver abstraction
Refactoring and multi-tenant Machine
Bug fixes and minor refactoring.