add escape string support
refactor