new logic using lintables to avoid some loops