testing gift functionality
Add promise support
smart-copy functionality