so many edge cases
refactor intron
one nt dup better
target