making sure self is set to super init