changing for [self alloc] instead of [classname alloc] to allow child classes to also use these methods