improved methode implemented