added ||=, conditional assignment operator