Execise: create a new program Consider creation of a simple scheduler listing tool in the &fml8; framework. Here the program name is "fmlsch" and the cgi is "fmlsch.cgi". Case study: create a fmlsch Step 1: add fmlsch into installer configuration Add fmlsch into $bin_programs in fml/etc/install.cf.in. Run configreu to re-create fml/etc/install.cf. Step 2: build a module Write fml/lib/Calender/Lite.pm as the main library of fmlsch. Import other libraries if needed. For fmlsch we import HTML-CalendarMonthSimple-1.02.tar.gz from CPAN. Also, install Date-Calc if your system has not it. Step 3: modify FML::Process:: class Calender::Lite works mainly but we build the machanism how &fml8; loads and runs it. We modify FML::Process class for &fml8; bootloader to call Calender::Lite. Firstly, write mandatory methods for fmlsch process in fml/lib/FML/Process/Calender.pm. You need to create this file. Secondly, set up boot loader configuration. In the case of fmlsch, the bootloader loads FML::Process::Calender. Define it in fml/etc/modules. Set up fml/etc/command_line_options properly. This "command_line_options" file has a map between a command and the command line options parsed by Getopt::Long(). Create FML::Process::Calender module by copy-and-pasting other FML::Process:: modules :-) However fmlsch has only to contain least functions, you need to write FML::Process::Calender::run() method. For undefined methods, fml loads FML::Process::Kernel functions (inheritence). Case study: fmlsch.cgi The way of hacking is similar to fmlsch. The differnce is that the target to modify is FML::CGI:: class. FML::CGI::Calender is a sub-class of FML::Process::CGI. If undefined method is called, fml loads it from FML::Process::CGI or FML::Process::Kernel. FML::Process::CGI uses CGI.pm to create a http header et.al. If FML::Process::CGI functions are not enough, FML::CGI class module should support the lack.