transcoding functionality beginning