clean and improve 2