implement 'lease' feature