use native protocol