tons of changes, better logic, less false positives