add return code error check