some reverts and a new try of the method