back to singleton approach