add singleton