Widget subclasses. Also rebasing api, and minor correction to traversal