Sdk enhancements

@antonbk @shunchu beat this up. I have braced myself. ;)
This class is a singleton, this.activity should be setting value on instance as `this` and `instance` should be the same thing.