code: public static CallStackElement create(CallStackElement parent, String signature, long startTimestamp) {
  		CallStackElement cse;
  		if (useObjectPooling) {
  			cse = objectPool.poll();
  			if (cse == null) {
  				cse = new CallStackElement();
  			}
  		} else {
  			cse = new CallStackElement();
  		}
  
  		cse.executionTime = startTimestamp;
  		cse.signature = signature;
  		if (parent != null) {
  			cse.parent = parent;
  			parent.children.add(cse);
  		}
  		return cse;
  	}
docs: This static factory method also sets the parent-child relationships.
  @param parent the parent
  @param startTimestamp the timestamp at the beginning of the method