designated initializer.