add complete function