works
boundary conditions included