added engine.string.escape()