added logical operations