implement string type