Why did you change static:: to self:: ?

static:: provides more flexibility for extending classes.