fixes #2563 enhance and() & or() method