export a destroy method to uninitialize a SDK instance
throw exceptions for invalid calls instead of just return
add a test for SDK destruction