add sparse version of PLM
add sparse divergence
updates and clean up