improved method...