All extensions must inherit from the SMExtension base class. This class defines all the
life cycle functions, and a constructor that receives a context object. The following example demonstrates how to define the main class for a new extension, and how to override one of the life cycle functions.