another useless include
move calls to ptr<>
refactor poisson_solver