There are still classes to be written/integrated and others that must be finished/debugged.
The current API library (libatheos) should be renamed (libsyllable) and possibly split up to avoid circular dependencies in the appserver. Currently the appserver relies on libatheos for certain tasks, which is fine as long as the appserver does not try to use anything in libatheos that relies on the Application object, and thereby the appserver itself - a circular dependency! This can be avoided in two ways: 1) by knowing what you're doing, or 2) having a libsysutil for basic utilities classes and a libsyllable for the actual GUI classes. I would vote for the second option...
Lot's of things have been named inconsistently or have simply been mis-spelt. These should be found and corrected. -> DrawModes
As the API has evolved old methods and classes have been deprecated. Not only do we need to remove these old sections of the API we also need to change existing classes to use newer methods where appropriate. E.g. Use os::String instead of const char *, os::Streamable instead of directly accessing a file via. fopen() calls etc.
All classes should have their private attributes put in a separate class, so that future changes don't break compatibility by necessity.
All classes should have have extra Public Virtuals for future use.
We need to think about Internationalisation and Localisation. Localisation involves new classes to support dictionaries, moving all hard coded strings to dictionaries and ensuring proper font support. Internationalisation means we'll have to consider non-western input methods and texts E.g. Right To Left and Vertical langauges, Kanji input etc.
add a "bool bNotify = true" parameter to DropdownMenu::SetCurrentString() and pass it through to TextView::Set()
Appserver
The video driver API needs cleaning up and extending. We also need to think about support for multiple and retargetable displays.
Printing. If we had retargetable displays we could render a view as a Postscript/PDF and have CUPS handle the actual backend printing work.
Toolchain
The toolchain is a little out of date. We should port Gcc 3.x and the latest Glibc, along with the latest Binutils.