implement urls shortening
add some modifications
add test cases
Merge branch 'feature/shortenurl' into trunk