allow != null