deeper abstraction of repo objects for future repository swaping
first draft request_unlock