add init with dict