Added a new function, and supports ARC.