slightly faster, and less work