add initWithDictionary