Changed Principal provider to be singleton instance

Still don't know why run is being called twice... Looking into that now.