public String getNewick(boolean bl) {
		StringBuffer ret = new StringBuffer("");
		for (int i = 0; i < this.getChildCount(); i++) {
			if (i == 0) {
				ret.append("(");
			}
			ret.append(this.getChild(i).getNewick(bl));
			if (bl) {
			    double branchLength = this.getChild(i).getBL();
			    if (branchLength == 0)
			        branchLength = MIN_BRANCH_LENGTH;

			    ret.append(":".concat(String.valueOf(branchLength)));
			}
			if (i == this.getChildCount()-1) {
				ret.append(")");
			} else {
				ret.append(",");
			}
		}
		if (this.name != null) {
			ret.append(this.name);
		}
		return ret.toString();
	}