Refactor to allow other framework to inject in their implementation