Finish the implementation of add event