more efficient all method