= Pending refactorings

; Adapter split
: The single, monolithic adapter method will be split into several methods for 
rendering the title, content area, and so on.
; Move to ``where``
: Once a Perl 6 implementation supports constraint subtyping (``where``), 
a lot of monolithic driver and adapter methods will be split up into many 
multimethods.
; Classes as roles
: Once a Perl 6 implementation supports roles, the current delegation-based 
approach to handling page classes will be replaced by a role-based approach.  
Details have yet to be worked out.
; EditHandler role
: Also once roles are available, an EditHandler role will be written which can 
automatically handle much of the drudge work currently associated with properly 
implementing the ``create`` and ``edit`` modes.
; Foundation split
: If only to better organize the documentation, the large Foundation module 
containing miscellaneous base classes ought to be split into several modules.

= Pending features

; 'dump', 'hack', and 'make' modes
: Once constraint subtyping is in place, several class-independent 
driver/adapter pairs will be written.  The ``dump`` mode will output the raw 
contents of a revision's attributes; the ``hack`` mode will allow new revisions 
to be created with the attributes changed by hand; and the ``make`` mode will 
allow new pages to be created with the attributes set by hand.  These will make 
use of ``k_manip`` optional for virtually all administrative tasks.
; Page owner
: The concept of a page's owner will be supported, and Fidelius will be able to 
block access to anybody who isn't the owner of the page in question.  Hopefully.
; User and Group roles
: In order to better support user-based...er...stuff, page classes will be able 
to compose User and Group roles into themselves.  These will specify extra 
interfaces needed to properly support these concepts.
; More magic
: Portus, a link tracking module, and an unnamed change tracking module ought 
to be written.
; New page classes
: New classes should include, among other things, a message-board class and an 
image class.

= Pending rewrites

; Kolophon parser
: The current Kolophon parser is an awful hack, used in its current form only 
because the real pattern engine isn't ready yet.  It will be replaced once the 
pattern engine is capable of handling a grammar for Kolophon.

= Pending bug fixes/feature completions

; Session expiration
: Sessions do not currently expire; this will be fixed.
; Password permissions
: There are currently some issues surrounding who is allowed to edit a user 
page; fixing these is a blocker for the next release after 0.02.
; More magic, revisited
: Many more magic hooks should be distributed throughout Kontent.

= Ideas to consider

; Fidelius algorithm change
: The current design of Fidelius has permission checking occurring at every 
page resolution, as well as when the driver is run.  It might be better to 
simply run all the checks after the resolution has been completed; among other 
things, the "owner" concept may be much cleaner with this in place.
; Magic redesign
: Magic is currently a system wherein a module registers several subroutines to 
respond to various events within Kontent.  It might be cleaner to instead 
implement it with a class per magic module; each event would be a method call, 
and the base WWW::Kontent::Magic class defaults to simply doing nothing for 
each one.  This needs to be considered and, if it will yield better code, 
implemented.
