added clean up after self