add singleton option