Cleanup. Still not tested.