Use static:: instead of self:: so that this class can be overridden