almost fully cleaned up