ElementBase sub_items not subitem? *XMPP needs to use JID class instead of lots of fields. BaseXMPP set_jid, makeIqQuery, getjidresource, getjidbare not needed Why CamelCase and underscore_names? Document semantics. conn_tests and sleekxmpp/tests and sleekxmpp/xmlstresm/test.* -> convert to either unit tests, or at least put in same place Update setup.py - github url, version # scheduler needs unit tests ClientXMPP stream:features handler should use new state machine Write stream tests for startls, features, etc. -- PEP8 - all files Need to use spaces Docstrings are lacking. Need to document attributes and return values. Organize imports Use absolute, not relative imports Fix one-liner if statements Line length limit of 79 characters -- Plugins --- xep_0004 Need more unit tests --- xep_0009 Need stanza objects Need unit tests --- xep_0045 Need to use stanza objects A few TODO comments for checking roles and using defaults Need unit tests --- xep_0050 Need unit tests Need stanza objects - use new xep_0004 --- xep_0060 Need unit tests Need to use existing stanza objects --- xep_0078 Is it useful still? Need stanza objects/unit tests --- xep_0086 Is there a way to automate setting error codes? Seems like this should be part of the error stanza by default Use stanza objects --- xep_0092 Stanza objects Unit tests --- xep_0199 Stanza objects Unit tests Clean commented code Use the new scheduler -- Documentation Document the Zen/Tao/Whatever of SleekXMPP to explain design goals and decisions Write architecture description XMPP:TDG needs to be rewritten. Need to update docs that reference old JID attributes of sleekxmpp objects Page describing new JID class Message page needs updating Iq page needs to be written Make guides to go with example.py and component_example.py Page on xmlstream.matchers Page on xmlstream.handlers, especially waiters Page on using xmlstream.scheduler