add __DATA__ to most service files and then make services, during construction, call $self->load(), which loads any unloaded __DATA__ blocks in any of the module's ISA chain. Move PLIF/Service/Components to PLIF/Component Move PLIF/Service/User* to PLIF/Session/* Move PLIF/Service/Session.pm to PLIF/Session.pm Move PLIF/Service/ContactMethods to PLIF/ProtocolHelper/... Move PLIF/DataSource/*/MySQL.pm to PLIF/DataSource/MySQL/*.pm Move PLIF/Service/Coses.pm and PLIF/Service/TemplateToolkit.bm to PLIF/OutputHelper ? Make the DBI Results Frame return array refs and not arrays (will require rather large changes throughout PLIF). Make getSettings return a boolean instead of raising an exception. Stylesheet should be a template