fixed precision bug