implement && and ||