BSD License
weak/strong ref
fix variable naming
fix syntax to work with objc conventions