public void validate(){
		StackMP2 validator_stack = new StackMP2();
		HtmlTag tempTag;
		int indentSize = 0;
		Queue<HtmlTag> internal_two = new LinkedList<HtmlTag>();
		
		internal_two = (Queue<HtmlTag>) internal_queue.clone();
		
		while(internal_two.isEmpty() == false){
		
			tempTag = internal_two.remove();
			
			if(tempTag.isOpenTag() == true){
				//if open tag, print to screen
				if(tempTag.isSelfClosing() == true){
					//if the head of the queue is self-closing, print
					System.out.println(indent(indentSize) + tempTag.toString());
				}
				else{
					System.out.println(indent(indentSize) + tempTag.toString());
				
					indentSize ++;
				
					validator_stack.push(tempTag);
				}
				
			}
			else if(validator_stack.isEmpty() == false && 
					tempTag.getElement().equals(validator_stack.peek().getElement())){
				//it is a closing tag that matches the tag atop the stack
				indentSize--; 
				System.out.println(indent(indentSize) + tempTag.toString());
				
				validator_stack.pop();
				
			}
			else{
				//closing tag that does not match the tag atop the stack	
				System.out.println("ERROR unexpected tag: " + tempTag.toString());
			}
					
		}
		
		while(validator_stack.isEmpty() == false){
			//left over tags are unclosed
			System.out.println("ERROR unclosed tag: " + validator_stack.pop().toString());
		}
		
	}