make .get() smarter about traversal