add progress and encoder