implement Initializer