code: public Criteria and(Criteria other) {
  		if (other != null) {
  			if (other instanceof AndCriteria) {
  				((AndCriteria) other).getCriterias().add(0, this);
  				return other;
  			} else {
  				return new AndCriteria(this, other);
  			}
  		} else {
  			return this;
  		}
  	}
docs: TODO: check for recursion?