refactor path method to ancestors
introduce namespacing
add a light-weight type-safe OO wrapper