external encoder and docs