add init with mixed args