implemented reuse func