add subscribe method