add subscribe interface