Properly handle all kinds of strings
Broke down and wrote a thin compat module
Add missing tests