public void getAllSpaces(final ArrayList<Space> spaces, final Criterion criterion) {
        switch(getCriterionReponse(criterion)) {
            case PASS:
                spaces.add(this);
                break;
            case DISBURSE:
                disburse();
                assert !isLeaf();

                for(Space space : nodes) {
                    space.getAllSpaces(spaces, criterion);
                }
                break;
        }
    }