Data updates

This PR contains PR #4 #5 #6 plus some changes to allow dynamic data updates
What does `detach()` do?