- [ ] Create a factory contract as a deployer - [ ] Create a resource contract as a resource provider - [ ] Add a few `rescue` functions for users to override their permissions to retrieve the funds out of the contract in emergency