Working objective c version!