[fix] prevent move of self
[add] added tests
[change] cargo-fication complete