Added the base class and example usage