add singleton patterns