added remove event listener and a little documentation