override init method