add interface for boundary conditions