added pattern base class