big update: DOM traverse, other changes