updated needle code, works but BAD/GOOD appears to suffer regression