Added IBoundary and made some classes non-final