- removed method swizzling (it was causing complications and it is not necessary)
- added completion block