move end event into speak method