add return value checking