Converted to ARC, improved readability, improved README.md and added some macros