Thank you for answering. Here is the situation. There are n layers (less than 10) in a 'tree' and each layer corresponds to a table in an Oracle database. When a user traverses the tree by clicking on nodes on a GUI, he/she should be able to go backtrack if needed. Assume that the user cannot backtrack more than n times, I can always use n session variables (perhaps in an array) to store the position (with timestamp to keep the chronological order of traversing). My other thought is to map the database tables to an internal XML tree and use DOM to store the traverse path. The twist of the latter solution is because each entry in the tables (except the root table) can have more than 1 parent (from the preceding upper layer/table), one might have to duplicate those entries as new elements in the XML tree. I assume that there are better ways to keep track of the path. If you or anyone know, please educate me. Thanks again. The apps is in J2EE.