fix: use six.string_types instead of basestring