add singleton-compatible mode