add oncomplition listeners