imporve interface