- "modernized" the code and weakified self in blocks

- removed explicit synthesis
- uses properties instead of IVARs
- Weakified Self