refactored API, not passing Opener around for just one call.