wrap innerSession and session in promise