merge prep
polarity implemented, some stuff factored out, moves slower