base class with dependencies check