add more things and change to objectivec