added comlete functions