setdata deffered

return a deferred object when set data with mapper:

- [x] finish the code
- [ ] gather feedback for my changes


| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | yes
| Tests pass?   | none
| Fixed tickets | #13
| Doc           | none