add objective c parameter and a second rust solution