Solving Boundary Value Problems