The storage slots corresponding to _implementation could be accidentally overwritten
According to the sparkn Doc, all the calls to proxy contract will be delegated to the implementation(distributor) contract.
Therefore, the storage slots are shared with the storage space of the Distributor contract.
_implementation is at slots 0, there is a risk of them being overridden.
You might consider using eip-1967.
An example of how the randomized storage is achieved, following EIP 1967:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.