improved version for better scaling results