I think we should rename the action of 'lazy loading' to 'Just In Time' so we can impress management types :-)
So: version 0.03 of Class::Factory (winging its way around CPAN) supports JIT loading of factory implementations.
Hacking on various OI2 pieces is going well -- the change the Class::Factory came about from work on the new-and-improved management interface. Instead of the monolithic oi_manage script which performed all the work or delegated where necessary, there's now an OpenInteract::Manage interface and task factory. Every task is a separate class that just has to implement run_task(), and can optionally implement setup_task() and tear_down_task() if it wants to do so.
Additionally, there are two main types of tasks: tasks operating on websites and tasks operating on packages. So all of the common setup/tear_down work can be done in these and the task class can focus on what it needs to do.
This should be just a bit more flexible and extensible than the current method, which is pretty much in the "if x gets hit by a bus..." vein.
I'm also trying (and mostly succeeding) in writing tests for many items as I go along. At least the parts that don't require a web server yet -- configuration files, packages, package repositories, context, etc. Nice.