fix edge cases with @
separate url and parser state