[add] unit tests
[update] native Uri implementation instead of custom logic