new method, improvements