updated method 3