public static boolean parsable(String s){
		int numParsed = 0; //make sure we're not doing someone else's job 
		//for example, we shouldn't say "1" is a term, because it should be considered a number
		
		//make sure it's a list of algebraic particles
		//don't subtract 1 from s.length() because we need to make sure it won't be able to parse the whole thing at once
		for(int i = s.length(); i >= 0; i--){
			//make sure it doesn't have a sign
			if(s.length() > 0 
					//if the first char is * and this isn't the first one to be parsed, remove it before attempting to parse
					&& AlgebraicParticle.parsable(numParsed > 0  && i > 1 && s.charAt(0) == '*' ? s.substring(1, i) : s.substring(0, i), Term.class)){
				numParsed++;
				//reset the loop
				s = s.substring(i);
				i = s.length()+1;//+1 because it's about to be subtracted 1
			}
		}
		//if the whole thing was parsable
		if(s.length() == 0 && numParsed > 1){
			return true;
		}
		else return false;
	}