fixed ! operator