class BlockTree {

  public boolean isRootAtNthEpochBoundary(Bytes32 blockRoot, final int n) {
    checkArgument(n > 0, "Parameter n must be greater than 0");
    assertBlockIsInTree(blockRoot);
    return hashTree
        .getParent(blockRoot)
        .filter(this::contains)
        .map(this::getEpoch)
        .map(
            parentEpoch -> getEpoch(blockRoot).dividedBy(n).isGreaterThan(parentEpoch.dividedBy(n)))
        .orElse(false);
  }

  private  BlockTree(final HashTree hashTree, final Map<Bytes32, UInt64> blockRootToSlot);

}