use accumular variable, etc