working version with many false posotives