Added traverse() method