Added completion callback hook