New Widgets * add tree support * add popup support * support more than one window Widget Features * support multiple selection * color picker will not fire events if type is set to button * support sorting and filtering on client * support lazy loading and server-side models for text, tabs, decks, list/tree data, RDF templates? * support mixed content (Hello world) * create widgets using XUL XML instead of XUL Perl API, with template support * support easy creation of new Perl widget classes, with no XBL * support client-side only events, * use Coro continuations for modal dialog boxes * add proper listenable support to node, instead of callback setting * support calling XUL methods with more than one param * only send modification to client if attribute has actually changed Server Features * add session kill method for user code * add package reload to server, Apache::Reload style * add another HTTP connection, for server initiated messages * add something like Apache2 perl-script handler, so you don't have to implement start() * better cleanup required after user code exceptions * performance: stop flushing all nodes for each event * test performance * clean up weak nodes from event manager when destroyed * figure out some way to throw away, on server side, widgets that never change or recieve events, so we can free memory * allow some async events * support event bundling * add compression * look into message store caching Testing * improve unit tests * create acceptance tests by automating Firefox * assert only one event is sent over the wire per high-level event Refactorings * refactor support code out of node: attribute handling, compositing, events, use aspects * probably change Click event in Perl to Command * refactor session timer out of server using aspects * replace conditionals in Runner.js and Application.js with polymorphism using node prototypes * auto convert XBL files to some schema so we can check method calls on server Other * create real demo applications * construct a high-level MVC framework on top of our low-level widgets