add three imporve ways