change callback list to an array of callbacks