added base class that didn't make it in the last commit