add 2D support
fix 3D laser bug
add if in current solver
fix compiletime errors
solve rebase conflicts