Refactor to allow attribute-traversal style configuration