Now using a Base class for easier reusage