fixed precision issues